package com.gitee.cirnochat.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.cirnochat.user.model.entity.Friend;
import com.gitee.cirnochat.user.model.vo.resp.FriendDetailVo;
import com.gitee.cirnochat.user.model.vo.resp.FriendVo;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

/**
* @author FlanChan
* @description 针对表【friend(好友关系表)】的数据库操作Service
* @createDate 2025-04-17 14:52:51
*/
public interface FriendService extends IService<Friend> {

    /**
     * 获取好友列表
     *
     * @param userId 用户ID
     * @return 好友列表
     */
    List<FriendVo> listFriends(Long userId);


    /**
     * 根据好友ID和用户ID获取好友详情
     *
     * @param id 好友ID
     * @param userId 用户ID
     * @return 好友详情
     */
    FriendDetailVo getFriendById(Long id, Long userId);

    /**
     * 获取好友列表
     *
     * @param userId 用户ID
     * @return 好友列表
     */
    List<Friend> getFriends(Long userId);


   /**
    * 修改备注名
    *
    * @param friendId  好友ID
    * @param remark     新备注
    */
   void updateRemark(Long friendId, String remark, HttpServletRequest request);

    /**
     * 判断该用户是否为好友
     * @param userId
     * @param friendId
     * @return
     */
    boolean isFriend(Long userId, Long friendId);

    /**
     * 删除好友
     * @param friendId
     * @param request
     */
    void deleteFriend(Long friendId, HttpServletRequest request);

}
